2. CastRay

1. Ray의 수학적 정의


1. Projects/펄어비스 인턴/5주차/__Attachments/Pasted image 20260202214355.png

Jolt의 Fraction = t / RayLength

2. Sphere와의 충돌: 2차 방정식의 해


  1. 구 방정식
    1. Projects/펄어비스 인턴/5주차/__Attachments/Pasted image 20260202215639.png
  2. 레이 방정식 대입
    1. Projects/펄어비스 인턴/5주차/__Attachments/Pasted image 20260202215713.png

3. 평면 및 삼각형과 충돌: 내적


  1. 평면 방정식
    1. Projects/펄어비스 인턴/5주차/__Attachments/Pasted image 20260202221010.png

  2. 레이 방정식 대입
    1. Projects/펄어비스 인턴/5주차/__Attachments/Pasted image 20260202221546.png
    1. Projects/펄어비스 인턴/5주차/__Attachments/Pasted image 20260202221747.png
    이 경우, 레이와 평면이 평행

  3. 내부 판정: 무게 중심 좌표 시스템을 사용해 판정

4. AABB/OBB와의 충돌: Slap Test


박스를 X, Y, Z축 방향으로 무한히 늘린 3쌍의 평면(Slab)으로 생각

  1. 레이가 X축 평면 두 장 사이를 지나는 구간 [t_XMin, t_XMax]를 구한다
  2. Y축, Z축에 대해서도 구간을 구한다.
  3. 이 세 구간의 교집합이 존재한다면 레이가 박스를 관통한 것

AABB: 월드 축이 고정되어 있어서 계산이 매우 빠름
OBB: 레이를 박스의 로컬 좌표계로 변환(Inverse Transform)한 뒤 AABB처럼 계산

5. Convex와의 충돌: GJK 알고리즘


  1. 민코프스키 차(Minkowski Difference): 물체 A의 모든 점에서 물체 B의 모든 점을 뺍니다. 두 물체가 충돌 중이라면 이 결과물인 새로운 도형은 반드시 원점(Origin) 을 포함하게 됩니다.
  2. 심플렉스(Simplex): 도형 내부에서 점, 선, 면, 사면체를 차례로 만들어가며 원점을 가두는지 테스트합니다.
  3. 레이캐스트 응용: 레이를 0에서 1까지 움직이는 점(또는 아주 얇은 캡슐)으로 보고 원점에 가장 빨리 근접하는 t를 찾아냅니다.
    https://gall.dcinside.com/mgallery/board/view/?id=game_dev&no=160927